package com.yfp.operation.service;


import com.yfp.operation.domain.MarAssociation;
import com.yfp.operation.domain.dto.AssociationDTO;
import com.yfp.operation.domain.vo.AssociationVO;
import me.chanjar.weixin.common.error.WxErrorException;

import java.util.List;

/**
 * @Description: 社群
 * 
 * @CreateDate: 2024/7/5 14:29
 * @UpdateUser: 
 * @UpdateDate: 2024/7/5 14:29
 * @UpdateRemark: 暂无修改
 * @Version: 1.0
 */
public interface MarAssociationService {
    /**
     * 查询
     * @param id
     * @return
     */
    MarAssociation getById(Long id);

    /**
     * 查询列表
     * @param marAssociation
     * @return
     */
    List<MarAssociation> findList(MarAssociation marAssociation);

    /**
     * 新增
     * @param marAssociation
     */
    void add(MarAssociation marAssociation) throws WxErrorException;

    /**
     * 编辑
     * @param marAssociation
     */
    void edit(MarAssociation marAssociation);

    /**
     * 同步微信群和成员列表
     */
    void syncGroupChat() throws WxErrorException;

    /**
     * 配置群信息
     * @param positonName
     * @param groupChatId
     * @return
     * @throws WxErrorException
     */
    String configGroupChat(String positonName, String groupChatId) throws WxErrorException;

    /**
     * 根据点位ID查询
     * @param positionId
     * @return
     */
    List<MarAssociation> findByPositionId(String positionId);

    /**
     * 根据群ID 查询
     * @param groupChatId
     * @return
     */
    MarAssociation findByGroupChatId(String groupChatId);

    /**
     * 社群数据明细列表
     * @param associationDTO
     * @return
     */
    List<AssociationVO> associationDataInfo(AssociationDTO associationDTO);

    /**
     * 社群数据明细列表补全
     * @param list
     * @return
     */
    List<AssociationVO> complementDataInfo(List<AssociationVO> list,AssociationDTO associationDTO);

    /**
     * 点位社群列表
     * @param associationDTO
     * @return
     */
    List<AssociationVO> positionAssociation(AssociationDTO associationDTO);

    /**
     * 补全点位社群列表
     * @param list
     * @param associationDTO
     * @return
     */
    List<AssociationVO> complementPositionAssociation(List<AssociationVO> list, AssociationDTO associationDTO);
}
